package com.asa.c;

public class E {
	
	
	
	
	/**
	 * JVM的JIT编译模式相关的选项
	 * -Xint
		-Xcomp
		-Xmixed

	 * 
	 * -Xms <size>
		设置初始Java堆大小，等价于-XX:nitialHeapSize
		-Xmx<size>
		设置最大Java堆大小，等价于-XX:MaxHeapSize
		-Xss <size>
		设置Java线程堆栈大小，-XX:ThreadStackSize

	 * 
	 * 
	 * 
	 * -XX:-UseParallelGC不选 择垃圾收集器为并行收集器
		-XX:+UseG1GC表 示启用G1收集器
		-xXx: +UseAdaptiveSizePolicy自动选择年轻代区大小和相应的Survivor区比例


	 * 
	 * 
	 * number表示数值，number可以带 上单位，比如: 'm’、 'M'表示兆，'k' 、'K'表示Kb,g'、'G' 表示g (例如32k跟32768是一样的效果)
		
		例如:
		-XX:NewSize=1024m表 示设置新生代初始大小为1024兆
		-XX :MaxGCPauseMillis=500表 示设置GC停顿时间: 500毫秒
		- XX:GCTimeRatio=19
		表示设置吞吐量
		-XX:NewRatio=2表示新生代 与老年代的比例

	 * 
	 * -XX:HeapDumpPath=/usr/local/heapdump.hprof用 来指定heap转存文件的存储路径。

	 * 
	 * -XX:PrintFlagsFinal
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * -XX:+ PrintCommandLineFlags
		可以让在程序运行前打印出用户手动设置或者JVM自动设置的XX选项

		-XX:+ PrintFlagslnitial
		表示打印出所有XX选项的默认值

		-XX:+ PrintFlagsFinal

		表示打印出XX选项在运行程序时生效的值
		-XX: + PrintVMOptions

		打印JVM的参数

	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * -Xms3550m
		等价于-XX:nitialHeapSize，设置JVM初始堆内存为3550M
		-Xmx3550m
		。等价于-XX:MaxHeapSize，设置JVM最大堆内存为3550M +
		设置年轻代大小为2G
		-Xmn2g
		官方推荐配置为整个堆大小的3/8
		-XX:NewSize= 1024m
		设置年轻代初始值为1024M
		-XX:MaxNewSize= 1024m
		设置年轻代最大值为1024M
		-XX:SurvivorRatio=8
		设置年轻代中Eden区与-个Survivor区的比值， 默认为8
		-XX: +UseAdaptiveSizePolicy
		自动选择各区大小比例
		-XX:NewRatio=4
		设置老年代与年轻代( 包括1个Eden和2个Survivor区)的比值
		设置让大于此阈值的对象直接分配在老年代，单位为字节
		-XX:PretenureSizeThreadshold=1024
		只对Serial、ParNew收集 器有效
		默认值为15
		-XX:MaxTenuringThreshold=15
		新生代每次MinorGC后，还存活的对象年龄+1，当对象的年龄大于设置的这个值时就进入老年代
		
		
		
		设置年轻代大小为2G
		-Xmn2g
		官方推荐配置为整个堆大小的3/8
		-XX:NewSize= 1024m
		设置年轻代初始值为1024M
		-XX:MaxNewSize= 1024m
		设置年轻代最大值为1024M
		4 -XX:SurvivorRatiq=8 ，
		设置年轻代中Eden区与-个Survivor区 的比值，默认为8
		-XX:+ UseAdaptiveSizePolicy
		自动选择各区大小比例
		-XX:NewRatio=4
		设置老年代与年轻代(包括1个Eden和2个Survivor区)的比值
		设置让大于此阈值的对象直接分配在老年代，单位为字节
		-XX:PretenureSizeThreadshold= 1024
		只对Serial、ParNew收集 器有效
		默认值为15
		-XX:MaxTenuringThreshold= 15
		新生代每次MinorGC后，还存活的对象年龄+1，当对象的年龄大于设置的这个值时就进入老年代
		-XX:+ PrintTenuringDistribution
		让JVM在每次MinorGC后打印出当前使用的Surivor中对象的年龄分布
		-XX:TargetSurvivorRatio
		表示MinorGC结束后Survivor区域中占用空间的期望比例


	 * 
	 * 
	 * 
	 * 
	 * 
	 * UseAdaptiveSizePolicy	自动适配大小
	 * SurvivorRatio 	幸存区比例
		这两个参数相矛盾，UseAdaptiveSizePolicy存在会导致SurvivorRatio失效
		

	 * 
	 * 
	 * 
	 */
	
	
	
	
	
	/**
	 * 
	 * -XX:PermSize= 256m
		设置永久代初始值为256M
		永久代
		-Xx:MaxPermSize=. 256m
		
		设置永久代最大值为256M
		-XX:MetaspaceSize
		
		初始空间大小
		-XX:MaxMetaspaceSize
		最大空间，默认没有限制
		元空间
		-XX:+ UseCompressedOops
		压缩对象指针
		-XX:+UseCompressedClassPointers
		压缩类指针
		-XX:CompressedClassSpaceSize
		设置Klass Metaspace的大小，默认1G
	 * 
	 * 
	 * 
	 * 
	 * -XX:+HeapDumpOnOutOfMemoryError
		表示在内存出现OOM的时候，把Heap转 存(Dump)到文件以便后续分析
		+ -XX:+ HeapDumpBeforeFullGC，
		表示在出现ulGC之前，生成Heap转储文件
	
		OutofMemory相关的选项
	
		-XX:HeapDumpPath= <path>
	
		指定heap转存文件的存储路径
		-XX:OnOutOfMemoryError
		指定一个可行性程序或者脚本的路径，当发生OOM的时候，去执行这个脚本

	 *
	 *
	 *
	 *对OnOutOfMemoryError的运维处理
		以部署在linux系统/opt/Server目录下的Server .jar为例
		1.在run. sh启动脚本中添加jvm参数:
		-XX:OnOutOfMemoryError=/opt/Server/pestart . sh
		2. restart. sh脚本
		linux环境:
		#!/bin/bash 
		pid=$(ps -ef |grep Server.jar|awk ' {if($8=="java") {print $2}}')
		kill -9 $pid
		cd /opt/Server/ ;sh run.sh
		Windows环境:
		echo off
		wmic process where Name= 'java.exe ' delete
		cd D: \Server
		start run. bat

	 *
	 *
	 *
	 *
	 *
	 *
	 *
	 *
	 *
	 */
	
	
	
	

}
